package repertorioInstrucciones;

import java.io.Serializable;
import java.util.ArrayList;

import maquina.Dato;
import maquina.Pila;
import maquina.PilaTrabajo;





public abstract class Instruccion<Dato> implements Serializable{
	/**
	 * 
	 */
	protected static final long serialVersionUID = 1L;
	protected ArrayList<Dato> parametros= new ArrayList<Dato>(); //siempre va a ser la direccion
	
	
	public Instruccion( Dato d ){
		this.parametros.add(d);
	}
	
	public Instruccion(){}
	
	public String toString(){
		String param="";
		if (!parametros.isEmpty()) 
			param=parametros.toString(); 
		return this.getClass().toString()+ "  "+ param +'\n' ;
	}
	
	public abstract PilaTrabajo<Dato> accion(PilaTrabajo<Dato> pilaT);
	
}
